Internet Protocol TV (IPTV) is a system that delivers content information (e.g., video and/or audio) via a data network, such as the Internet, to a network-enabled data processing device, e.g., a set-top box (STB) or a personal computer (PC). IPTV typically uses a multicast technology if the content information is a live broadcast, and a unicast technology for, e.g., a video-on-demand or for implementing a pause functionality in a live broadcast. Multicast is an addressing method for the simultaneous transmission of data to multiple destinations. Multicast is an efficient approach in that the data is delivered over each link of the network only once and in that copies of the data are created only where links to destinations split. Unicast, on the other hand is the addressing method for delivery of data from a single source to a single destination. Using unicast per individual one of a group of receivers typically requires more bandwidth than multicast to the same group.
The content information is typically transported via a data network using the MPEG-2 Transport Stream format, (MPEG-data), although other container formats are feasible, e.g., Advanced Systems Format (ASF), Audio Video Interleave (AVI), etc. As is known, the expression “container format” refers to a multiplexing format that can contain various types of data, compressed by means of audio/video codecs. Currently, there are two main approaches being used to transport MPEG-2 data using the Internet Protocol (IP).
In a first approach, the MPEG-data form the payload of UDP datagrams. The acronym “UDP” stands for User Datagram Protocol (or: Universal Datagram Protocol). UDP is not a reliable protocol in the sense that datagrams may be received out of order, may be duplicated, or may have disappeared without notice. On the other hand, UDP avoids the overhead of checking whether every datagram has actually arrived, thus making it a fast and efficient protocol for applications that do not need guaranteed delivery. Time-sensitive applications often use UDP because dropped packets are preferred to delayed packets.
In a second approach, the MPEG-data are encapsulated in UDP datagrams that themselves form the payload of Real-time Transport Protocol (RTP) packets. RTP defines a standardized packet format for delivery of real-time data, such as audio and/or video, over the Internet using the IP. RTP provides suitable functionality for carrying real-time information content, e.g., a timestamp and control mechanisms for synchronizing different streams with timing properties. An RTP packet has a header comprised of a plurality of fields, among which is the field “sequence number.” This field carries a numerical value that increments by one for each next RTP data packet transmitted. This field may be used by the receiver to detect packet loss and to restore packet sequence. Accordingly, RTP requires more overhead than UDP alone.
Now consider the scenario of a network operator multicasting content information such as a TV program from a source, e.g., a server, to a group of receivers, typically STBs or PCs, via a data network. If RTP is being used, packet loss can be easily detected at the receiver and the missing packets can be easily identified, based on the packet sequence numbers. The network operator may have reserved a buffer server that buffers at least part of the content information. When a receiver detects packet loss and identifies the missing packet, the receiver can contact the buffer server with a request to send the missing packets. The buffer server then responds by sending the missing packets to the requesting receiver. If the operations of detecting packet loss, identifying the missing packets, sending the request to the buffer server and receiving the missing packets, can be carried out in a small enough time window, the receiver can restore the integrity of the content information in time for rendering without user-perceptible artifacts.